package com.xoms.front.persist.dao;

import java.util.List;

import com.xoms.front.model.ProCategoryBean;
import com.xoms.front.model.vo.ProCategoryVo;
import com.xoms.front.model.vo.TreeNodeBean;

/**
 * 产品分类持久化层
 * 
 * @author stallmandu
 *
 */
public interface ProCategoryDao {

	/**
	 * 根据姓名获取分类名称
	 * 
	 * @param name
	 * @return
	 */
	ProCategoryBean selectOneByName(String name);

	/**
	 * 新建分类名称
	 * 
	 * @param data
	 * @return
	 */
	int insert(ProCategoryBean data);

	/**
	 * 更新分类名称
	 * 
	 * @param data
	 * @return
	 */
	int update(ProCategoryBean data);

	/**
	 * 根据id获取分类数据
	 * 
	 * @param cid
	 * @return
	 */
	ProCategoryBean selectOneById(String cid);

	/**
	 * 获取分类下商品数量
	 * 
	 * @param cid
	 * @return
	 */
	int selectCount2Category(String cid);

	/**
	 * 删除分类
	 * 
	 * @param cid
	 * @return
	 */
	int del(String cid);

	/**
	 * 查询所有分类
	 * 
	 * @param isHq
	 * @param parentId
	 * @return
	 */
	List<ProCategoryVo> selectAllCates();

	/**
	 * 查询所有分类
	 * 
	 * @return
	 */
	List<TreeNodeBean> selectCategores();

	/**
	 * 查询总部分类
	 * 
	 * @return
	 */
	List<ProCategoryVo> selectHqCates();

	/**
	 * 查询总部树形结构
	 * 
	 * @return
	 */
	List<TreeNodeBean> selectHqCateTrees();

	/**
	 * 获取总部一级分类
	 * 
	 * @return
	 */
	List<TreeNodeBean> selectHqFirstCateTrees();

	/**
	 * 获取分类下最大顺序
	 * 
	 * @param parentId
	 * @return
	 */
	Integer selectMaxSort(String parentId);

	/**
	 * 查询总部二级分类
	 * 
	 * @return
	 */
	List<ProCategoryVo> selectHqSecondCates();

}
